/**
 * 为jquery绑定一个kit命名空间
 */
$.extend({
	// 一些弹出提示相关的工具命名空间
	prompt : {},
	// 个些表单类相关工具的命名空间
	array : {},
	// 一些请求的方法封装
	http : {},
	// 一些打印日志的方法
	logs : {},
	// 一些验证方法
	vali : {}
});

// 一些弹出提示相关的工具类
$.extend($.prompt, {
	/**
	 * <p>
	 * 打印提示信息的aler，提示信息必须调用此方法
	 * </p>
	 * 
	 * @param msg
	 *            需要打印的内容
	 * @param url
	 *            打印消息后，需要跳转的路径
	 * @example $.prompt.alert("内容");
	 * @author 杨阳
	 * @since 2017年9月4日
	 */
	alert : function(msg, url) {
		layer.open({
			content : msg,
			fixed : true,
			anim : 1,
			yes : function(index, layero) {
				layer.close(index);
				if (null != url) {
					window.location.href = url;
				}
			}
		});
	},
	/**
	 * <p>
	 * 需要提示的一些操作提示，直接传入需要刷新的表示以及url就可以删除成功
	 * </p>
	 * 
	 * @param msg
	 *            提示语
	 * @param url
	 *            删除数据的地址
	 * @param obj
	 *            可能是刷新表格的对象，也可能是要跳转的地址
	 * @example $.prompt.delPromptBox(msg, url, table);
	 * @author 杨阳
	 * @since 2017年9月7日
	 */
	delPromptBox : function(msg, url, obj) {
		layer.open({
			anim : 6,
			fixed : true,
			content : msg,
			yes : function(index, layero) {
				$.http.submitForm({
					url : url,
					success : function(r) {
						if (r && r.success) {
							layer.close(index);
							if (Object.prototype.toString.call(obj) === '[object Object]') {// 如果是对象
								obj.reload();
								$.prompt.alert(r.msg, null);
							} else if (Object.prototype.toString.call(obj) === '[object String]') {// 如果是字符串
								$.prompt.alert(r.msg, obj);
							}
						} else {
							$.prompt.alert(r.msg, null);
						}
					}
				});
			}
		});
	}
});

// 一些表单相关的工具类
$.extend($.array, {
	/**
	 * <p>
	 * 将数组按指定符号拼接成字符串
	 * </p>
	 * 
	 * @param Array
	 *            数组
	 * @param delimiter
	 *            分隔符号
	 * @return 字符串
	 * @example $.array.join(Array, 'delimiter');
	 * @author 杨阳
	 * @since 2017年9月4日
	 * 
	 */
	join : function(array, delimiter) {
		var str = "";
		array.each(function(i) {
			if (i > 0) {
				str += ",";
			}
			if (Object.prototype.toString.call($(this)) === '[object Object]') {// 如果是对象
				str += $(this).val();
			} else if (Object.prototype.toString.call($(this)) === '[object String]') {// 如果是字符串
				str += $(this);
			}
		});
		return str;
	}
});

// 一些请求相关的工具类
$.extend($.http, {
	/**
	 * <p>
	 * 利用jquery的ajax进行请求
	 * </p>
	 * 
	 * @param options
	 *            用户传入的ajax配置
	 * @example $.http.ajax({url:""});
	 * @author 杨阳
	 * @since 2017年9月4日
	 * 
	 */
	submitForm : function(options) {
		// 定义ajax的默认属性
		var defaultOptions = {
			url : "",
			dataType : "json",
			type : "post",
			success : function(r) {

			},
			error : function() {
				$.prompt.alert("请求失败，请重试!");
			}
		};

		// 将默认配置与用户传入配置进入深度拷贝
		var opt = $.extend(true, {}, defaultOptions, options);

		$.ajax(opt);
	}
});

// 一些在浏览器console打印的调试工具
$.extend($.logs, {
	/**
	 * <p>
	 * 调用console.info(进行打印);
	 * </p>
	 * 
	 * @param msg
	 *            需要打印的信息
	 * @example $.logs.info(内容);
	 * @author 杨阳
	 * @since 2017年9月4日
	 * 
	 */
	info : function(msg) {
		if (window.console) {
			console.info(msg);
		}
	}
});

// 一些验证的方法
$.extend($.vali, {
	/**
	 * <p>
	 * 验证是否是正整数
	 * </p>
	 * 
	 * @param value
	 *            需要验证的内容
	 * @example $.vali.positiveInteger(内容);
	 * @author 杨阳
	 * @since 2017年9月25日
	 * 
	 */
	positiveInteger : function(value) {
		var pattern = /[1-9]\d*/;
		return pattern.test(value);
	}
});

/**
 * <p>
 * 让iframe随着内容的高度而改变高度,要在iframe onload方法中调用
 * </p>
 * 
 * @param iframeID
 *            iframe的ID
 * @author 杨阳
 * @since 2017年9月4日15:39:28
 * @demo <iframe onload="iframeAutoHeight(iframeID);"></iframe>
 */
function iframeAutoHeight(iframeID) {
	var frame = document.getElementById(iframeID);
	var outHeight = frame.offsetHeight;
	var inHeight = frame.contentWindow.document.body.scrollHeight;
	if (outHeight < inHeight) {
		frame.style.height = (inHeight + 30) + "px";
	} else if (inHeight > 650) {
		frame.style.height = (inHeight + 30) + "px";
	} else {
		frame.style.height = "750px";
	}
}